package com.yealove.lunchparty.mapper;

import com.yealove.common.utils.DictItem;
import com.yealove.lunchparty.bean.*;

import java.util.List;

/**
 * Dao层
 * User: yealove
 * Date: 8/17/14
 * Time: 6:28 PM
 * Created with IntelliJ IDEA.
 */
public interface ILunchPartyMapper {

    /**
     * 添加用户
     *
     * @param user
     * @return
     */
    public void addUser(User user);

    /**
     * 登录验证用户
     *
     * @return
     */
    public User login(User user);

    /**
     * 获取用户列表
     *
     * @return
     */
    public List<User> getUsers();

    /**
     * 获取当日菜单
     *
     * @return
     */
    public List<Menu> getTodayMenu(String shopId);

    /**
     * 获取当前订单列表（4小时以内）
     *
     * @return
     */
    public List<Order> getTodayOrder();

    /**
     * 获取当前订单列表（4小时以内）
     *
     * @return
     */
    public Order getOrderById(String id);

    /**
     * 添加订单
     *
     * @param order
     * @return
     */
    public void addOrder(Order order);

    /**
     * 计算今日订单
     *
     * @return
     */
    public List<DictItem> calc();

    /**
     * 更新余额
     *
     * @param dictItem
     */
    public void updateMoney(DictItem dictItem);

    /**
     * 判断是否已经注册
     *
     * @param user
     * @return
     */
    public User isReg(User user);

    /**
     * 获取用户信息
     *
     * @param id
     * @return
     */
    public User getUserById(String id);

    /**
     * 获取最近用户的订单
     *
     * @param dictItem
     * @return
     */
    public List<Order> getRecentOrder(DictItem dictItem);

    /**
     * 获取权限配置
     *
     * @return
     */
    public Auth getAuthByKey(String key);

    /**
     * 获取权限信息
     *
     * @return
     */
    public List<Auth> getAuths();

    /**
     * 退订
     *
     * @param id
     */
    public void delOrderById(String id);

    /**
     * 更改权限值
     *
     * @param dictItem
     */
    public void updateAuth(DictItem dictItem);

    /**
     * 获取商家列表
     *
     * @return
     */
    public List<Shop> getShops();

    /**
     * 添加商家
     *
     * @param shop
     */
    public void addShop(Shop shop);

    /**
     * 获取今日菜单总数
     *
     * @return
     */
    public int getTodayMenuCount(String shopId);

    /**
     * 分页查询菜单信息
     *
     * @param <T>
     * @return
     */
    public <T extends PageBean> List<Menu> getTodayMenuPage(T t);

    /**
     * 查询餐厅的所有的菜单
     *
     * @param shopId
     * @return
     */
    public List<Menu> getShopMenus(String shopId);

    /**
     * 添加新菜
     *
     * @param menu
     */
    public void addMenu(Menu menu);

    public Shop qryDefaultShop();

    public void updateDefaultShopOne();

    public void updateDefaultShop(String id);

    public void delMenuById(String id);
}
